package br.ufrpe.bsi.pvs.model.roupa;

import java.util.List;

public class Roupa {

	private int id;
	private String descricao;
	private int quantEstoque;
	private Genero genero;
	private Estilo estilo;
	private TipoCorporeo tipoCorporeo;
	private TipoRoupa tipoRoupa;
	private Tamanho tamanho;
	private List<Notas> listaNotas;

	// Gets and Sets
	public Estilo getEstilo() {
		return this.estilo;
	}

	public void setEstilo(Estilo estilo) {
		this.estilo = estilo;
	}

	public TipoCorporeo getTipoCorporeo() {
		return this.tipoCorporeo;
	}

	public void setTipoCorporeo(TipoCorporeo tipoCorporeo) {
		this.tipoCorporeo = tipoCorporeo;
	}

	public TipoRoupa getTipoRoupa() {
		return this.tipoRoupa;
	}

	public void setTipoRoupa(TipoRoupa tipoRoupa) {
		this.tipoRoupa = tipoRoupa;
	}

	public List<Notas> getListaNotas() {
		return this.listaNotas;
	}

	public void setListaNotas(List<Notas> listaNotas) {
		this.listaNotas = listaNotas;
	}

	public Tamanho getTamanho() {
		return this.tamanho;
	}

	public void setTamanho(Tamanho tamanho) {
		this.tamanho = tamanho;
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public int getQuantEstoque() {
		return this.quantEstoque;
	}

	public void setQuantEstoque(int quantEstoque) {
		this.quantEstoque = quantEstoque;
	}

	public Genero getGenero() {
		return this.genero;
	}

	public void setGenero(Genero genero) {
		this.genero = genero;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result + ((estilo == null) ? 0 : estilo.hashCode());
		result = prime * result + ((genero == null) ? 0 : genero.hashCode());
		result = prime * result + id;
		result = prime * result
				+ ((listaNotas == null) ? 0 : listaNotas.hashCode());
		result = prime * result + quantEstoque;
		result = prime * result + ((tamanho == null) ? 0 : tamanho.hashCode());
		result = prime * result
				+ ((tipoCorporeo == null) ? 0 : tipoCorporeo.hashCode());
		result = prime * result
				+ ((tipoRoupa == null) ? 0 : tipoRoupa.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Roupa other = (Roupa) obj;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (estilo == null) {
			if (other.estilo != null)
				return false;
		} else if (!estilo.equals(other.estilo))
			return false;
		if (genero == null) {
			if (other.genero != null)
				return false;
		} else if (!genero.equals(other.genero))
			return false;
		if (id != other.id)
			return false;
		if (listaNotas == null) {
			if (other.listaNotas != null)
				return false;
		} else if (!listaNotas.equals(other.listaNotas))
			return false;
		if (quantEstoque != other.quantEstoque)
			return false;
		if (tamanho == null) {
			if (other.tamanho != null)
				return false;
		} else if (!tamanho.equals(other.tamanho))
			return false;
		if (tipoCorporeo == null) {
			if (other.tipoCorporeo != null)
				return false;
		} else if (!tipoCorporeo.equals(other.tipoCorporeo))
			return false;
		if (tipoRoupa == null) {
			if (other.tipoRoupa != null)
				return false;
		} else if (!tipoRoupa.equals(other.tipoRoupa))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Roupa [id=" + id + ", descricao=" + descricao
				+ ", quantEstoque=" + quantEstoque + ", genero=" + genero
				+ ", estilo=" + estilo + ", tipoCorporeo=" + tipoCorporeo
				+ ", tipoRoupa=" + tipoRoupa + ", listaNotas=" + listaNotas
				+ ", tamanho=" + tamanho + "]";
	}

}
